<?xml version="1.0" ?>
<!-- -->
<!-- ******************************************************************* -->
<!-- *        Generative Shape Design                                  * -->
<!-- ******************************************************************* -->
<std:node name="GenerativeShapeDesign" type="GenerativeShapeDesign" xmlns:std="http://www.dsweb.com/std">
  <std:enumdef name="YesNo">
    <std:strval>No</std:strval>
    <std:strval>Yes</std:strval>
  </std:enumdef>
  <std:enumdef name="LimitationValues">
    <std:strval>Part</std:strval>
    <std:strval>Whole</std:strval>
  </std:enumdef>
  <std:enumdef name="LimitationValues1">
    <std:strval>Trimmed</std:strval>
    <std:strval>Complementary</std:strval>
    <std:strval>Whole</std:strval>
  </std:enumdef>
  <std:enumdef name="CircleTrimOption">
    <std:strval>NoTrim</std:strval>
    <std:strval>TrimElement1</std:strval>
    <std:strval>TrimElement2</std:strval>
    <std:strval>FullTrim</std:strval>
  </std:enumdef>
  <std:enumdef name="CircleTypes">
    <std:strval>CenterAndRadius</std:strval>
    <std:strval>CenterAndPoint</std:strval>
    <std:strval>TwoPointsAndRadii</std:strval>
    <std:strval>ThreePoints</std:strval>
    <std:strval>CenterAndAxis</std:strval>
    <std:strval>BitangentAndRadius</std:strval>
    <std:strval>BitangentAndPoint</std:strval>
    <std:strval>Tritangent</std:strval>
    <std:strval>CenterAndTangent</std:strval>
  </std:enumdef>
  <std:enumdef name="LineLengthTypes">
    <std:strval>Length</std:strval>
    <std:strval>Infinite</std:strval>
    <std:strval>InfiniteStartPoint</std:strval>
    <std:strval>InfiniteEndPoint</std:strval>
  </std:enumdef>
  <std:enumdef name="LineTypes">
    <std:strval>PointPoint</std:strval>
    <std:strval>PointDirection</std:strval>
    <std:strval>AngleNormaltoCurve</std:strval>
    <std:strval>TangenttoCurve</std:strval>
    <std:strval>NormaltoSurface</std:strval>
    <std:strval>Bisecting</std:strval>
  </std:enumdef>
  <std:enumdef name="PointTypes">
    <std:strval>Coordinates</std:strval>
    <std:strval>Oncurve</std:strval>
    <std:strval>Onplane</std:strval>
    <std:strval>Onsurface</std:strval>
    <std:strval>CircleSphereEllipseCent</std:strval>
    <std:strval>Tangentoncurve</std:strval>
    <std:strval>Between</std:strval>
  </std:enumdef>
  <std:enumdef name="SmoothingValues">
    <std:strval>None</std:strval>
    <std:strval>Automatic</std:strval>
    <std:strval>Manual</std:strval>
  </std:enumdef>
  <std:enumdef name="LocalGlobal">
    <std:strval>Local</std:strval>
    <std:strval>Global</std:strval>
  </std:enumdef>
  <std:node name="GSMWireframeFeats">

    <std:node name = "GSMCircle">
      <std:node name = "CircleTypes">
        <std:enumval name="CircleTypes">CenterAndRadius</std:enumval>
        <std:node name = "GSMCircleCtrRad">
      <std:node name = "CircleLimitations">
        <std:enumval name="LimitationValues">Part</std:enumval>
      </std:node>
    </std:node>
        <std:node name = "GSMCircleCtrPt">
          <std:node name = "CircleLimitations">
            <std:enumval name="LimitationValues">Part</std:enumval>
          </std:node>
        </std:node>
        <std:node name = "GSMCircle2PointsRad">
          <std:node name = "Radius">
            <std:strval name="Radius">100mm</std:strval>
          </std:node>
          <std:node name = "CircleLimitations">
            <std:enumval name="LimitationValues1">Trimmed</std:enumval>
          </std:node>
        </std:node>
        <std:node name = "GSMCircle3Points">
          <std:node name = "CircleLimitations">
            <std:enumval name="LimitationValues1">Trimmed</std:enumval>
          </std:node>
        </std:node>
        <std:node name = "GSMCircleCenterAxis">
          <std:node name = "Radius">
            <std:strval name="Radius">20mm</std:strval>
          </std:node>
          <std:node name = "CircleLimitations">
            <std:enumval name="LimitationValues">Part</std:enumval>
          </std:node>
          <std:node name = "CircleCenterAxisProjectMode">
            <std:enumval name="YesNo">Yes</std:enumval>
          </std:node>
        </std:node>
        <std:node name = "GSMCircleBitangentPt">
          <std:node name = "CircleLimitations">
            <std:enumval name="LimitationValues1">Trimmed</std:enumval>
          </std:node>
          <std:node name="CircleTrimOption">
            <std:enumval name="CircleTrimOption">NoTrim</std:enumval>
          </std:node>
        </std:node>
        <std:node name = "GSMCircleBitangentRad">
          <std:node name = "Radius">
            <std:strval name="Radius">1mm</std:strval>
          </std:node>
          <std:node name = "CircleLimitations">
            <std:enumval name="LimitationValues1">Trimmed</std:enumval>
          </std:node>
          <std:node name="CircleTrimOption">
            <std:enumval name="CircleTrimOption">NoTrim</std:enumval>
          </std:node>
        </std:node>
        <std:node name = "GSMCircleTritangent">
          <std:node name = "CircleLimitations">
            <std:enumval name="LimitationValues1">Trimmed</std:enumval>
          </std:node>
          <std:node name="CircleTrimOption">
            <std:enumval name="CircleTrimOption">NoTrim</std:enumval>
          </std:node>
        </std:node>
      </std:node>
          <std:node name = "Radius">
            <std:strval name="Radius">20mm</std:strval>
          </std:node>
      <std:node name = "CircleAxisComputationMode">
        <std:enumval name="YesNo">No</std:enumval>
      </std:node>
      <std:node name="CircleDiameterMode">
        <std:enumval name="YesNo">No</std:enumval>
      </std:node>
      <std:node name="Start">
        <std:strval name="Start">0deg</std:strval>
      </std:node>
      <std:node name="End">
        <std:strval name="End">180deg</std:strval>
      </std:node>
    </std:node>
    <std:node name = "Line">
      <std:node name = "LengthTypes">
        <std:enumval name="LineLengthTypes">Length</std:enumval>
      </std:node>
      <std:node name = "LineTypes">
        <std:enumval name="LineTypes">PointPoint</std:enumval>
      </std:node>
      <std:node name="Start">
        <std:strval name="Start">0mm</std:strval>
      </std:node>
      <std:node name="End">
        <std:strval name="End">20mm</std:strval>
      </std:node>
      <std:node name = "GSMLinePtPt">
        <std:node name = "Start">
          <std:strval name="Start">0mm</std:strval>
        </std:node>
        <std:node name = "End">
          <std:strval name="End">0mm</std:strval>
        </std:node>
      </std:node>
      <std:node name = "GSMLineAngle">
        <std:node name = "Angle">
          <std:strval name="Angle">45deg</std:strval>
        </std:node>
      </std:node>
    </std:node>
    <std:node name = "GSMPoint">
      <std:node name = "PointTypes">
        <std:enumval name="PointTypes">Coordinates</std:enumval>
        <std:node name = "GSMPointCoord">
          <std:node name = "X">
            <std:strval name="X">0mm</std:strval>
          </std:node>
          <std:node name = "Y">
            <std:strval name="Y">0mm</std:strval>
          </std:node>
          <std:node name = "Z">
            <std:strval name="Z">0mm</std:strval>
          </std:node>
        </std:node>
        <std:node name = "GSMPointOnCurve">
          <std:node name = "Length">
            <std:strval name="Length">0mm</std:strval>
          </std:node>
        </std:node>
        <std:node name = "GSMPointBetween">
          <std:node name = "Ratio">
            <std:strval name="Ratio">0</std:strval>
          </std:node>
        </std:node>
      </std:node>
    </std:node>
  </std:node>
  <std:node name="GSMSurfaceFeats">
    <std:node name = "GSMCylinder">
      <std:node name = "Radius">
        <std:strval name="Radius">20mm</std:strval>
      </std:node>
      <std:node name = "Length1">
        <std:strval name="Length1">20mm</std:strval>
      </std:node>
      <std:node name = "Length2">
        <std:strval name="Limit2">20mm</std:strval>
      </std:node>
    </std:node>
    <std:node name = "GSMExtrude">
      <std:node name = "Limit1">
        <std:strval name="Limit1">20mm</std:strval>
      </std:node>
      <std:node name = "Limit2">
        <std:strval name="Limit2">0mm</std:strval>
      </std:node>
    </std:node>
    <std:node name = "GSMRevol">
      <std:node name = "Angle1">
        <std:strval name="Angle1">180deg</std:strval>
      </std:node>
      <std:node name = "Angle2">
        <std:strval name="Angle2">0deg</std:strval>
      </std:node>
    </std:node>
    <std:node name = "GSMSphere">
      <std:node name = "SphereLimitations">
        <std:enumval name="LimitationValues">Part</std:enumval>
      </std:node>
    </std:node>
    <std:node name = "GSMSweep">
      <std:node name = "FillTwistedAreas">
        <std:enumval name="YesNo">Yes</std:enumval>
      </std:node>
      <std:node name = "ComputeC0VerticesAsTwistedAreas">
        <std:enumval name="YesNo">Yes</std:enumval>
      </std:node>
      <std:node name = "CanonicalShapeDetectionForNonCanonicResult">
        <std:enumval name="YesNo">No</std:enumval>
      </std:node>
      <std:node name = "CanonicalShapeDetection">
        <std:enumval name="YesNo">No</std:enumval>
      </std:node>
    </std:node>
  </std:node>
  <std:node name="GSMTransformFeats">
    <std:node name = "GSMExtrapol">
      <std:node name = "DeviationActivity">
        <std:enumval name="YesNo">No</std:enumval>
      </std:node>
      <std:node name = "DeviationActivityDefaultStateAsStandard">
        <std:enumval name="YesNo">No</std:enumval>
      </std:node>
    </std:node>
    <std:node name = "GSMOffset">
      <std:node name = "SmoothingMode">
        <std:enumval name="SmoothingValues">None</std:enumval>
      </std:node>
      <std:node name = "RegularizationMode">
        <std:enumval name="LocalGlobal">Local</std:enumval>
      </std:node>
      <std:node name = "MaximumDeviation">
        <std:strval name="MaximumDeviation">0.1mm</std:strval>
      </std:node>
    </std:node>
    <std:node name = "GSMHealing">
      <std:node name = "MergeDist">
        <std:strval name="MergingDist">0.001mm</std:strval>
      </std:node>
			
			<std:node name = "DistanceObjective">
				<std:strval name="DevUserG0">0.001mm</std:strval>
			</std:node>
			
			<std:node name = "TangencyAngle">
				<std:strval name="TangencyAngle">0.5deg</std:strval>
			</std:node>
			
			<std:node name = "TangencyObjective">
				<std:strval name="DevUserG1">0.5deg</std:strval>
			</std:node>

			<std:node name = "FreezePlaneElements">
				<std:enumval name="YesNo">Yes</std:enumval>
			</std:node>
			<std:node name = "FreezeCanonicElements">
				<std:enumval name="YesNo">Yes</std:enumval>
			</std:node>
			
    </std:node>
  </std:node>
  <std:node name="PDGRefineFeats">
    <std:node name = "Thickness">
      <std:node name = "ThickSmoothingMode">
        <std:enumval name="SmoothingValues">None</std:enumval>
      </std:node>
      <std:node name = "ThickRegularization">
        <std:enumval name="LocalGlobal">Local</std:enumval>
      </std:node>
      <std:node name = "ThickMaxDeviation">
        <std:strval name="MaximumDeviation">0.1mm</std:strval>
      </std:node>
    </std:node>
    <std:node name = "ThickSurface">
      <std:node name = "ThickSurfaceSmoothingMode">
        <std:enumval name="SmoothingValues">None</std:enumval>
      </std:node>
      <std:node name = "ThickSurfaceRegularization">
        <std:enumval name="LocalGlobal">Local</std:enumval>
      </std:node>
      <std:node name = "ThickSurfaceMaximumDeviation">
        <std:strval name="MaximumDeviation">0.1mm</std:strval>
      </std:node>
    </std:node>
    <std:node name = "Shell">
      <std:node name = "ShellSmoothingMode">
        <std:enumval name="SmoothingValues">None</std:enumval>
      </std:node>
      <std:node name = "ShellRegularization">
        <std:enumval name="LocalGlobal">Local</std:enumval>
      </std:node>
      <std:node name = "ShellMaxDeviation">
        <std:strval name="MaximumDeviation">0.1mm</std:strval>
  </std:node>
      </std:node>
    </std:node>
  <std:node name = "AxisSystem">
    <std:node name = "Current">
      <std:enumval name="YesNo">Yes</std:enumval>
    </std:node>
</std:node>
</std:node>


